// importa las librerias de Bennu
import "mod_draw";
import "mod_key";
import "mod_map";
import "mod_proc";
import "mod_grproc";
import "mod_screen";
import "mod_text";
import "mod_file";
import "mod_video";
import "mod_rand";
import "mod_string";
import "mod_debug";
import "mod_sound";
import "mod_wm";

// variables y funciones
include "src/vars.prg";
include "src/func.prg";

// managers
include "src/inputmanager.prg";
include "src/assetmanager.prg";
include "src/statemanager.prg"
include "src/levelmanager.prg"
include "src/inputcontroller.prg"
include "src/animationcontroller.prg"
include "src/physicscontroller.prg"


// procesos
include "src/world.prg";


// inicio del programa principal
BEGIN
	// inicializacion de video
	// 640x480 px 32 bits en ventana
	set_mode(SCREEN_X, SCREEN_Y, 32, MODE_WINDOW + MODE_WAITVSYNC);
	
	//establece los fps y el frameskipping
	set_fps(60,0);
	
	//muestra los fps en pantalla
	//(escribe una variable FPS con la fuente 0 en el punto 0,0 alineado a 0)
	write_var(0,0,0,0, fps);
	
	// inicia el creador de mundos (?)
	// para crear el nivel1
	print("Inicia Nivel");
	world(gameLevel);
	
	inputmanager();
	
	
	
	txtDebug = write(0,320,240,4, "Hello World");
	
	// bucle principal 
	LOOP
		
		// si presiona esc ( funcion key() )
		IF ( key(_esc) )
		
			// inicia un countdown para salir
			shouldExit = 1;
			delete_text(txtDebug);
			txtDebug = write(0,320,240,4,"ARE YOU SURE TO WANT TO EXIT?");
			
		END
		
		// Exit Countdown
		IF ( shouldExit)
			IF ( countdown <=0 )
				exit();
			ELSE
				// realiza el conteo
				//write_var(0,320,260,4,countdown);
				countdown--;
			END
		END
		
		// Forced Exit
		IF ( key ( _f1 ) or EXIT_STATUS )
			exit();
		END
		
		frame;
		
	END
	
END
